1. Field of the Invention
This invention relates to a system and a method of leveraging GPU (Graphics processing unit) resources to increase performance of an interact-able content browsing (ICB) service, and more particularly to the system and the method for enhancing the performance of an interact-able content browsing service that can introduce the GPUs to directly capture, encode and stream raw images in memory of a display card so as to save the operational bandwidth of the central processing unit (CPU).
2. Description of the Prior Art
In a cloud based service system, for example (but not limited to) a system for providing a cloud based web browsing and/or application service, a typical job of a server therein is to deliver web based content or other kinds of contents to clients at far ends. When the content to be delivered contains video data, raw images related to the content shall be encoded in advance at the server end into a video stream, before such content can be transmitted to specific clients and can be presents at displayers of the clients in a web form or other formats. Particularly, in the case while more than one client intends to capture the video content from a single cloud based service system at the same time, jobs of encoding the raw images and stream-transferring the encoded data between the GPU and the CPU would occupy huge workable bandwidths of the system resources and the CPU which can be originally applicable to application programs. Such an arrangement would inevitably limit the cloud based service and also the number of clients accessing the system simultaneously. Further, for those cloud based services with almost the same capacity, the power consumption will also be an issue.
Referring to FIG. 1, a typical cloud based service system 1 is illustrated in a block form. The cloud based service system 1 can perform the cloud based network application and web browsing service to provide data to a data center in accordance with the following structuring.
1. Display 111: to display a plurality of raw images at display peripherals by executing the browser application program at the server ends 11 of the cloud based service system 1 through performing the application programming interface (API) of the operating system (OS);
2. Encode 112: to capture the raw images displayed at the display peripherals and to transfer the captured raw images to a hardware or software encoder for further encoding and streaming;
3. Stream 113: to capture the streamed data from the encoder for being further distributed to the distant client ends 91 through the network facilities 14.
As shown in FIG. 1, the browser application program performed individually by the servers 11, 12 or 13 of the cloud based service system 1 can only provide service to a single client 91, 92 or 93 once at a time. If a need to enlarge the service capacity of the system 1, cost hike in increasing the number of the servers would be too high to be accepted.
Referring to FIG. 2, another typical cloud based service system 2 is shown in a block form. The system 2 performs the following operations to provide the cloud based network application and browsing services.
1. Program 211: a server 21 of the cloud based service 2 can execute a plurality of application programs 211 and 212. Each of the programs 211 or 212 can individually form a respective program-executing environment to provide the distant client 91 or 92 to obtain the service of the server 21 through the network facilities 14.
2. Memory 2111: the browser application program executed by the server 21 of the cloud based service system 2 can depict a plurality of raw images displayed at the display peripherals through the application program interface of the operation system. The raw images are further stored in the system memory 2111 of the server 21 controlled by the operation system.
3. Encode 2113: to capture the raw images in the system memory 211 controlled by the operation system and further to forward these raw images to a hardware or software encoders for further encoding and streaming.
4. Stream 2113: to capture the streamed data from the encoder and to forward the streamed data to the respective distant client 91 through the network facilities 24.
As shown in FIG. 2, each of the servers 21 and 22 of the cloud based service system 2 can provide services simultaneously to plural clients 91, 92 and 93. However, for storing the raw image into the system memory 2111 and encoding the raw images need to consume the work capacity of the CPU of the respective server and also for the transmission of the raw images between the system memory 2111 and the video RAM (VRAM) will occupy a considerable range of bus bandwidths, huge operation loads would be inevitable to the servers 21 and 22, and to limit the number of the clients that can be served at the same time by a single server. Also, tremendous power consumption therein can be expected.